iT邦幫忙

2023 iThome 鐵人賽

DAY 18
0
DevOps

一步步學DevOps:30天入門計劃系列 第 18

Day 18 Docker Compose 容器化應用程式管理

  • 分享至 

  • xImage
  •  

https://ithelp.ithome.com.tw/upload/images/20231004/20139800V86rs2FySj.jpg

Docker Compose是一個用於管理Web應用程式和數據庫等組件的容器化部署應用工具,它使用YAML文件來定義應用程式的各個組件,包括容器、image、環境變數和網絡設定等。Docker Compose能夠自動建立並管理容器之間的網絡配置,使容器組件間能夠互聯無需手動配置。

例如開發一個Web應用程式時,可能需要Webapp應用程式和database數據庫服務,這些組件可以透過Docker Compose進行容器化部署管理。以下是使用Docker Compose進行設定的基本步驟:

步驟一:安裝 Docker Compose:

  • 先更新系統
sudo apt update
sudo apt upgrade –y
  • 使用 curl 命令下載 Docker Compose,先確認 curl 是否安裝,如果沒有進行安裝
sudo apt install curl
  • 下載 Docker Compose 執行檔:
    這個命令將直接下載最新版本 的 Docker Compose 並安裝到 /usr/local/bin/docker-compose目錄。
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-Linux-x86_64" -o /usr/local/bin/docker-compose
  • 設置執行權限
sudo chmod +x /usr/local/bin/docker-compose
  • 驗證安裝,安裝成功會出現 Docker Compose 的版本信息
docker-compose –version

步驟二:建立 Docker Compose 文件

以下使用 Docker Compose 建立容器執行 WordPress 和 MySQL 數據庫的簡單範例說明:

  • 建立新的目錄,並在該目錄下建立一個 docker-compose.yml 的文件和二個子目錄為:wordpress和mysql_data,用於儲存volumes中的WordPress和MySQL的數據資料庫。
mkdir my-wordpress-project
cd my-wordpress-project
touch docker-compose.yml
mkdir wordpress mysql_data
  • 建立docker-compose.yml文件
    使用您喜歡的文字編輯器(如 nano、vi/vim 或 vscode)建立一個docker-compose.yml 文件,定義容器的名稱、所使用的image、(port)端口連接、環境變數等。這個 docker-compose.yml 檔案定義了兩個服務:db 和 web。db 服務使用 MySQL image,web 服務使用 WordPress image
version: '3'
services:
  wordpress:
depends_on:
        - db
    image: wordpress:latest
    ports:
      - "8080:80"  # 將主機的端口8080對應到容器的端口80
restart: always
    environment:
      WORDPRESS_DB_HOST: db  # WordPress資料庫主機名,與下面的服務名稱一致
      WORDPRESS_DB_USER: wordpress  # WordPress資料庫使用者名稱
      WORDPRESS_DB_PASSWORD: wordpress  # WordPress資料庫密碼
      WORDPRESS_DB_NAME: wordpress  # WordPress資料庫名稱
    volumes:
      - ./wordpress:/var/www/html  # 持久化儲存WordPress網站檔案的目錄
  db:
    image: mysql:latest
    environment:
      MYSQL_ROOT_PASSWORD: root_password  # MySQL的root使用者密碼
      MYSQL_DATABASE: wordpress  # 新建的WordPress資料庫名稱
      MYSQL_USER: wordpress  # 新的MySQL使用者名稱
      MYSQL_PASSWORD: wordpress  # 新的MySQL使用者密碼
    volumes:
      - ./mysql_data:/var/lib/mysql  # 持久化儲存MySQL資料庫資料的目錄

備註:

  • wordpress:depends_on:- db: WordPress需要一個數據庫服務,設定depends_on:名為db的數據庫容器,意思是在啟動WordPress容器之前,Docker Compose將確保db容器已經啟動運行。

  • ./wordpress:/var/www/html :將本地文件系統中的./wordpress 目錄,掛載到容器内部的指定路徑:/var/www/html

步驟三:啟動 Docker Compose

切換到docker-compose.yml 文件的目錄,使用以下命令啟動應用程式:

sudo docker-compose up –d

-d 選項表示在背景運行容器。

  • 查看容器狀態:
sudo docker-compose ps

驗証測試

  • 在瀏覽器中連線到 http://localhost:8080/ ,按照畫面上的指引來完成 WordPress 的設定

  • 檢查資料庫內容,使用以下命令進入 MySQL 容器並檢查資料庫內容:

sudo docker exec -it db mysql -u root -p -h localhost
  • 然後輸入 MySQL使用者密碼,執行以下命令:
mysql> use wordpress;
mysql> show tables;

mysql> use wordpress;:這個命令將切換到wordpress 的資料庫。
mysql> show tables;:這個命令顯示 wordpress 資料庫中的所有表格的列表。包括 WordPress 存儲其數據的各種表格,如文章、評論、用戶等,是 WordPress 的核心表格。

顯示如下:

+-----------------------+
| Tables_in_wordpress   |
+-----------------------+
| wp_comments           |
| wp_links              |
| wp_options            |
| wp_postmeta           |
| wp_posts              |
| wp_term_relationships |
| wp_term_taxonomy      |
| wp_terms              |
| wp_usermeta           |
| wp_users              |
+-----------------------+

上一篇
Day 17 如何使用 Dockerfile 建立 image
下一篇
Day 19 建立自己的Docker image上傳至Docker Hub
系列文
一步步學DevOps:30天入門計劃30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言